import { request } from '@/axios'

// 获取当前用户信息
export function getCurrentUserProfile() {
    return request({
        url: '/user/profile',
        method: 'GET'
    })
}

// 获取指定用户公开信息
export function getUserPublicProfile(userId) {
    return request({
        url: `/user/profile/${userId}`,
        method: 'GET'
    })
}

// 更新用户个人信息（旧版本）
export function updateUserProfile(nickname, avatar, bio) {
    const params = new URLSearchParams()
    if (nickname) params.append('nickname', nickname)
    if (avatar) params.append('avatar', avatar)
    if (bio) params.append('bio', bio)
    
    return request({
        url: '/user/profile/update',
        method: 'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded'
        },
        data: params
    })
}

// 更新用户个人信息（新版本）
export function updateUserProfileV2(data) {
    return request({
        url: '/user/profile/update/v2',
        method: 'POST',
        data: data
    })
}

// 上传用户头像
export function uploadAvatar(formData) {
    return request({
        url: '/user/avatar/upload',
        method: 'POST',
        headers: {
            'Content-Type': 'multipart/form-data'
        },
        data: formData
    })
}

// 获取用户登录日志
export function getUserLoginLogs(params) {
    return request({
        url: '/user/login-logs',
        method: 'GET',
        params: params
    })
}

// 发送邮箱验证码
export function sendEmailCode(data) {
    return request({
        url: '/user/email/send-code',
        method: 'POST',
        data: data
    })
}

// 邮箱验证码登录
export function emailLogin(data) {
    return request({
        url: '/user/email/login',
        method: 'POST',
        data: data
    })
}

// 绑定邮箱
export function bindEmail(email, code) {
    const params = new URLSearchParams()
    params.append('email', email)
    params.append('code', code)
    
    return request({
        url: '/user/email/bind',
        method: 'POST',
        headers: {
            'Content-Type': 'application/x-www-form-urlencoded'
        },
        data: params
    })
}
